Predicting how many resources an application running inside a computer system will use at some point in the future has been a fundamental problem since the earliest stages of operating computers. In order to predict future resource usage, a model of a computer system can be created. Future resource usage information is especially important to schedulers, that is, the management parts of operating or orchestration systems that decide which applications to run and at which time and with which of the available, limited resources.
State of the art approaches to predicting future resource usage often use simple heuristics for predicting the future resources usage of an application. However, these heuristics use only very limited information and decision-making processes. Furthermore, such heuristics are typically a one-size-fits-all solution designed under worst-case assumptions so as to be applicable in a wide range of applications and systems environments.